<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <ul>
    <li>美女</li>
    <li>汽车</li>
    <li>游戏</li>
    <li>金钱</li>
  </ul>
  <script>
        // 1. 判断数据是否是数组类型Array.isArray()
        // typeof [1,2,3] ---> Object 
        // [1,2,3] instanceof Array true
        // Object.prototype.toString.call([1,2,3])=="[Object Array]"
        let arr=[1,2,3,4]
        console.log(Object.prototype.toString.call(arr))
        console.log(Array.isArray(arr))  //true
        // 2. Array.of() 将一组值转换为数组
        let arr2=Array.of(1,2,3,"你好",5)
        console.log(arr2)
        function say() { 
            let arr3=Array.of(...arguments)
            console.log(arr3) 
            console.log(arr3.reverse())
         }
         say(1,2,3,"带你飞",true)
       let lis=document.querySelectorAll("li");
        console.log(lis)
         let mylis= Array.of(...lis);
        console.log(mylis.reverse())
        // 3.Array.from()把一些伪数组或者可遍历的对象集合转化为数组 
        let clist=Array.from(lis)
        console.log(clist)
        // 4.fill 使用给定值，填充一个数组
        // fill(用来填充的数据,开始位置，结束位置)
       let arr5=[1,2,3,4]
       console.log(arr5.fill(8))
       let arr7=[1,2,3,4,5,6]
       console.log(arr7.fill("*",1,3))//1 * * 4 5 6 留头不留尾

      //  5.，Object.entries()，Object.keys() 和 .Object.values()
      // Object.keys() 将对象的key整理成数组返回
      // Object.values() 将对象的value值整理成数组返回
      // Object.entries() 将对象的key和value整理成二维数组
         let obj1={
           name:"小王",
           age:8,
           hobby:"学习",
           shengao:180
         }
        console.log(Object.keys(obj1))
        // 判断一个对象是否为空
        // Object.keys(obj1).length==0

        console.log(Object.values(obj1))

        // 
        console.log(Object.entries(obj1))//[['name','小王'],[age,8]]
        // 6.find 用于找出第一个符合条件的数组成员。
        let arr6=[1,3,5,67,8,45,4,883,234];
        let str=arr6.find(function (item) {
          return item>50 //条件
        })
        console.log(str);
        // 7.findIndex 用于找出第一个符合条件的数组成员的下标
        let str1=arr6.findIndex(function (item) {
          return item>50 //条件
        })
        console.log(str1)
        // 8.includes 判断数组是否包含某一项数据
        let arrs=["你好","你","你不好","好天气","好人"];
        console.log( arrs.includes("好人"))
        // 9. flat(num) 数组扁平化方法
        // num 扁平化的层数
        // Infinity 无限扁平化 成一维数组
          let arrj=[[1,2],[3,4],[[5],6,7]];//[1,2,3,4,5,6,7]
          console.log(arrj.flat(2))
          console.log(arrj.flat(Infinity))
      // 10.  flatMap() 数组扁平化  整理数组
        // 只能扁平化一层
        let arrk=[[1,2,3],[4,5,6]]
        let arrc=arrk.flatMap(function (item) {
            return item.reverse()
        })
        console.log(arrc)
        
        let arrg=[1,3,554,2,43,23,45];
         console.log(arrg.filter(function (item) { 
           return item%2==0
         }))
          console.log(arrg.some(function (item) {
            return item%2==0
          }))
          console.log(arrg.every(function (item) {
            return item%2==0
          }))//false

  </script>
</body>
</html>